<?php
require_once LIBS_DIR . '/DatePicker.php';
class Admin_ZapasKoloPresenter extends BasePresenter
{
	
	public function renderDefault()
	{
		$zapasKolo = new ZapasKoloModel();
		$this->template->zapas_kola = $zapasKolo->findAll();
	}
	public function renderNovy()
	{
		$form = $this['zapasKoloForm'];
	}
	public function renderUpravit($id = 0)
	{
		$form = $this['zapasKoloForm'];
		if (!$form->isSubmitted()) {
			$zapas_kolo = new ZapasKoloModel();
			$row = $zapas_kolo->findById($id)->fetch();
			if (!$row) {
				throw new NBadRequestException('Záznam nebyl nalezen.');
			}
			$form->setDefaults($row);
		}
	}
	
	public function renderSmazat($id = 0)
	{
		$zapas_kolo = new ZapasKoloModel();
		$this->template->zapas_kolo = $zapas_kolo->findById($id)->fetch();
		if (!$this->template->zapas_kolo) {
			throw new NBadRequestException('Zápasové kolo nebylo nalezeno');
		}
	}
	
	protected function createComponentSmazatForm()
	{
		$form = new NAppForm;
		
		$form->addSubmit('delete', 'Smazat')->getControlPrototype()->class('default');
		$form->addSubmit('cancel', 'Zpět');
		$form->onSubmit[] = callback($this, 'smazatFormSubmitted');
		$form->addProtection('Potvrďte prosím tento formulář znovu.');
		return $form;
	}
	
	public function smazatFormSubmitted(NAppForm $form)
	{
		if ($form['delete']->isSubmittedBy()) {
			$zapas_kolo = new ZapasKoloModel();
			$zapas_kolo->delete($this->getParam('id'));
			$this->flashMessage('Zápasové kolo bylo odstraněno.');
		}

		$this->redirect('default');
	}
	
	protected function createComponentZapasKoloForm()
	{

		$form = new NAppForm;
		
		$form->addText('nazev', 'Název kola:');
		$form->addText('cislo_kola', 'Číslo kola:');
		$form->addDatePicker('zacatek', 'Začátek:');
		$form->addDatePicker('konec', 'Konec:');
		$soutez = new SoutezModel();
		$soutez_items = $soutez->findAll()->fetchPairs('id','nazev');
		$form->addSelect('soutez_id', 'Soutěž:', $soutez_items)->skipFirst('Zvolte soutěž');
	
		$form->addSubmit('save', 'Uložit')->getControlPrototype()->class('default');
		$form->addSubmit('cancel', 'Zpět')->getControlPrototype()->class('cancel')->setValidationScope(NULL);
		$form->onSubmit[] = callback($this, 'zapasKoloFormSubmitted');

		$form->addProtection('Potvrďte prosím tento formulář znovu.');
		$this->template->form = $form;
		return $form;
	}
	public function zapasKoloFormSubmitted(NAppForm $form)
	{
		if ($form['save']->isSubmittedBy()) {
			$id = (int) $this->getParam('id');
			$zapas_kolo = new ZapasKoloModel();
			if ($id > 0) {
				$zapas_kolo->update($id, $form->getValues());
				$this->flashMessage('Zápasové kolo bylo upraveno.');
			} else {
				$zapas_kolo->insert($form->getValues());
				$this->flashMessage('Zápasové kolo bylo vytvořeno.');
			}
		}

		$this->redirect('default');
	}

}

